export {};

// 通过在 class 前添加 abstract 修饰词定义一个抽象类，该类只能被继承，不能直接生成实例.
abstract class Animal {
    eat(food: string):void {
        console.log(`吃${food}`)
    }

    abstract run(distance: number):void
}

// 通过在类的方法前添加 abstract 修饰词定义一个抽象方法，该方法没有具体实现，但必须在子类中实现
class Dog extends Animal {
    run(distance: number):void {
        console.log(`跑${distance}`)
    }
}
